%% -*- erlang -*-
{erl_opts, [warnings_as_errors,
            warn_export_all,
            warn_untyped_record,
            inline,
            {platform_define, "^R[01][0-9]", 'NO_MAP_TYPE'},
            {platform_define, "^(R|17)", 'NO_DIALYZER_SPEC'}]}.

{xref_checks, [fail_on_warning, undefined_function_calls]}.

{clean_files, [".eunit/*", "ebin/*.beam"]}.

{cover_enabled, true}.

{edoc_opts, [{dialyzer_specs, all},
             {report_missing_type, true},
             {report_type_mismatch, true},
             {pretty_print, erl_pp},
             {preprocess, true}]}.
{validate_app_modules, true}.

{shell, [{apps, [jsone]}]}.

{dialyzer, [{warnings, [error_handling, unmatched_returns, unknown, no_improper_lists]}]}.

{profiles, [{native, [{erl_opts, [{d, 'ENABLE_HIPE'}]}]},
            {test, [{erl_opts, [warnings_as_errors,
                                warn_export_all,
                                warn_untyped_record,
                                inline,
                                {platform_define, "^R[01][0-9]", 'NO_MAP_TYPE'},
                                {platform_define, "^(R|17)", 'NO_DIALYZER_SPEC'},
                                {d, 'MAP_ITER_ORDERED'},
                                {d, 'TIME_MODULE', test_time_module}]}]},
            {edown, [{edoc_opts, [{doclet, edown_doclet}]}, {deps, [edown]}]}]}.

{project_plugins, [covertool, rebar3_efmt]}.
{cover_export_enabled, true}.
{covertool, [{coverdata_files, ["ct.coverdata", "eunit.coverdata"]}]}.
